2025-10-20 Reliable Computer Systems
Recently there has been an increase in the number of system outages that we see in computer systems that we all use, shopping, banking, entertainment. To me this is not a surprise as the systems landscape has become so vast and diverse that problems are inevitable and at the same time with the wide spread use of cloud systems where a single failure can effect multiple systems it is inevitable to have far more damaging effects when an outage occurs
There is not a simple addressable reason for this in fact there are many.
In software development there is the use of frameworks which are used everywhere nowadays from web page development to back end systems, developed and maintained by many people and used by millions of developers.
These frameworks are becoming large and hard to maintain and they also add a lot of bloat to systems which can as a consequence lead to increasing the maintenance and likelihood of failure as they themselves rely on software libraries maintained by others.
We now have cloud based systems that provide solutions for every customer need CRM’s, CMS’s etc. customisable for your company which adds bloat as well as maybe compromises in your business processes.
The tailoring of these systems is often done through outsourcing of staff and projects globally where your developers may be located thousands of miles away making quality control virtually impossible, verbal fluency, time zones, culture, crime all play a role in making it hard to develop reliably in a distributed global environment.
Another problem with outsourcing staff is that they are much more mobile now and as they move from one contract or company they take their experience with them meaning that identifying problems and making future enhancements more difficult.
And of course now we have a lot more crime, fraud, political etc. and all of the issues above make crime much easier.
So what can be done, well there are options but they will add to the cost and will add to development timescales but I would argue that this is worthwhile to ensure high quality, easily maintainable systems which are a better investment than minimal viable products heavily customised third party apps developed by people you will never see again assuming you ever saw them in the first place.
Keep a core expertise, employ some staff who are experts in their field and keep them and their experience ongoing.
Avoid overuse of frameworks when you can which is not easy but I rarely use frameworks nowadays as I have my own solutions for most development work. I will often use my own frameworks combined with well maintained libraries that are easy to replace if required.
Where you use off the shelf systems, have the project run locally, ensure any outsourced staff are relatively local so that you can meet face to face at key points in the project, despite the benefits of Teams, you still need to meet face to face at key points or when major roadblocks occur in your project.
This is going to add cost and make your systems more expensive but as explained above I think this would be a false economy to do anything else.
One factor that is more recent is the use of AI which is everywhere at the moment, it is great for many things that are relatively simple logically i.e. answering customer queries, writing historical fact based essays for college etc. as well as more interesting things such as image manipulation, but they are nowhere near able to produce business ready apps that are well designed, prototyped, developed, tested, documented, maintained etc. but at some point they may be, then all bets are off where that will lead us!